import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

/* 自动注入全部的modules */
function injectModules() {
  const files = require.context('./modules', false, /\.js$/);
  const modules = files.keys().reduce((all, key) => {
    const _key = key.replace(/(\.\/|\.js)/g, '');
    const module = { ...files(key).default, namespaced: true };
    return { ...all, [_key]: module };
  }, {});
  return modules;
}

const modules = injectModules();

export default new Vuex.Store({
  modules,
  getters: {
    accessToken: state => state.user.accessToken,
  },
});
